package pers.huangyuhui.sms.mapper;

import org.apache.ibatis.annotations.Param;
import pers.huangyuhui.sms.model.StudentInfo;

import java.util.List;
import java.util.Map;

public interface StudentMapper {

    /**
     * @param name 学生姓名
     * @param password 学生自己设定的密码
     * @return {@code studentInfo}类型的数据
     */
    public StudentInfo getUserInfo(@Param("name") String name , @Param("password") String password);

    /**
     * @param studentInfo 学生信息
     * @return {@code boolean}类型,添加成功后返回{@code true},否则{@code false}
     */
    public boolean addStudent(StudentInfo studentInfo);

    /**
     * @param map 该哈希表中应含有分页信息{@code paging.start},{@code paging.size}以及学生信息{@code studentInfo.id},{@code studentInfo.classId},{@code studentInfo.name}
     * @return {@code List<StudentInfo>}类型的列表
     */
    public List<StudentInfo> getStudentList(Map<String , Object> map);

    /**
     * @param studentInfo 学生信息
     * @return {@code int}类型的列表总长
     */
    public int getStudentListNum(StudentInfo studentInfo);

    /**
     * @param studentInfo 学生信息
     * @return {@code boolean}类型,修改完成后返回{@code true},否则{@code false}
     */
    public boolean editStudentInfo(StudentInfo studentInfo);

    /**
     * @param ids 由将被删除的学生{@code id}组成的数组
     * @return {@code boolean}类型,删除完成后返回{@code true},否则{@code false}
     */
    public boolean deleteStudent(String[] ids);

    /**
     * @param map 该哈希表中应含有{@code studentInfo}类型的学生信息,以及新设定的密码{@code newPassword}
     * @return {@code boolean}类型,修改完成后返回{@code true},否则{@code false}
     */
    public boolean modifyPassword(Map<String, Object> map);
}
